package com.personnalManagerSystem.util;

import org.apache.shiro.crypto.hash.SimpleHash;

import java.util.Random;

/**
 * @Author liqing
 * @Date: 2022/3/27 19:36
 * @Description
 */
public class Md5Util {

    public static String md5(String salt,String password){
        /**
         * @Description simpleHash的参数
         * 1.加密算法的名称
         * 2.加密使用的对象
         * 3.加密的盐
         * 4.加密的次数
         * @author liqing
         * @data 2022/3/27  19:39
         * @return java.lang.String
         */
        return new SimpleHash("md5",password,salt,1024).toString();
    }
    //生成一个16位随机字符串来作为盐值,之前使用用户名即登录名加盐,确保了用户名的唯一性也可
    public static String createRandomStr(){
        int length = 16;
        StringBuffer sb = new StringBuffer();
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        for(int i = 0;i<length;i++){
            int number = random.nextInt(str.length());
            char ch = str.charAt(number);
            sb.append(ch);
        }
        return sb.toString();
    }
   //测试,为了保证数据的安全性在数据库中存储的都是加密之后的密码
    public static void main(String[] args) {
        System.out.println(md5("x4Yi1DlB3BcrO6Wk","111"));
    }
}
